近期在評估 IP 與 Rack 管理系統,其中一款是 NetBox。此文記錄安裝在 Ubuntu 18.04 過程與初步使用情況。
NetBox 搭配的資料庫系統為 PostgreSQL,在 NetBox 2.2 版需要選用 PostgreSQL 9.4 以上的版本。
# apt-get update
# apt-get install -y postgresql libpq-dev
接下來建立其它部份,請注意密碼不要使用與範例相同。
# sudo -u postgres psql
psql (9.4.5)
Type "help" for help.
postgres=# CREATE DATABASE netbox;
CREATE DATABASE
postgres=# CREATE USER netbox WITH PASSWORD 'J5brHrAXFLQSif0K';
CREATE ROLE
postgres=# GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;
GRANT
postgres=# \q
開始安裝系統主要用到的元件,包含 Python、Redis 等。
# apt-get install -y python3 python3-pip python3-dev build-essential libxml2-dev libxslt1-dev libffi-dev graphviz libpq-dev libssl-dev redis-server zlib1g-dev
安裝主程式,我採用直接從 Git 安裝方式。
# mkdir -p /opt/netbox/ && cd /opt/netbox/
# apt-get install -y git
# git clone -b master https://github.com/digitalocean/netbox.git .
安裝 Python 軟體包與設定。
# pip3 install -r requirements.txt
# pip3 install napalm
# cd netbox/netbox/
# cp configuration.example.py configuration.py
設定檔 configuration.py
配置,主要有 ALLOWED_HOSTS、DATABASE、SECRET_KEY 這四大項。
其中 SECRET_KEY 可以預先使用 netbox/generate_secret_key.py
這支程式產生後,再填入。
ALLOWED_HOSTS = ['netbox.example.com', '192.0.2.123']
DATABASE = {
'NAME': 'netbox', # Database name
'USER': 'netbox', # PostgreSQL username
'PASSWORD': 'J5brHrAXFLQSif0K', # PostgreSQL password
'HOST': 'localhost', # Database server
'PORT': '', # Database port (leave blank for default)
}
SECRET_KEY = 'xxxxxxxx'
系統安裝完成後,需要手動建立一名管理者以供登入。
# python3 manage.py createsuperuser
Username: admin
Email address: admin@example.com
Password:
Password (again):
Superuser created successfully.
至此系統安裝完成,可以進行初步測試。
# python3 manage.py runserver 0.0.0.0:8000 --insecure
Performing system checks...
System check identified no issues (0 silenced).
November 28, 2018 - 09:33:45
Django version 2.0.9, using settings 'netbox.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.
請使用瀏覽器連至 http://ip:8000/ ,即可開始體驗 NetBox 系統。
上面完成的安裝僅適合測試或開發使用,若要正式上線,應該以網頁伺服器做為運作的服務基礎。
# apt-get install -y nginx
安裝完 nginx,接著使用文字編輯器建立給 NetBox 使用的站台設定,請存檔於 /etc/nginx/sites-available/netbox
。
server {
listen 80;
server_name netbox.example.com;
client_max_body_size 25m;
location /static/ {
alias /opt/netbox/netbox/static/;
}
location / {
proxy_pass http://127.0.0.1:8001;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"';
}
}
接著調整站台相關設定並重啟服務生效。
# cd /etc/nginx/sites-enabled/
# rm default
# ln -s /etc/nginx/sites-available/netbox
# service nginx restart
安裝相關啟動所需服務
# pip3 install gunicorn
# apt-get install -y supervisor
將以下設定存為 /opt/netbox/gunicorn_config.py
。
command = '/usr/bin/gunicorn'
pythonpath = '/opt/netbox/netbox'
bind = '127.0.0.1:8001'
workers = 3
user = 'www-data'
將以下設定存為 /etc/supervisor/conf.d/netbox.conf
。
[program:netbox]
command = gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
directory = /opt/netbox/netbox/
user = www-data
[program:netbox-rqworker]
command = python3 /opt/netbox/netbox/manage.py rqworker
directory = /opt/netbox/netbox/
user = www-data
重新啟動所需服務
# service supervisor restart
安裝完成後,使用瀏覽器開啟 http://ip/
,並登入先前所建立的管理者帳號密碼,即可開始順利使用。
裝置列表畫面
機櫃配置畫面
NetBox 安裝流程算是容易,只要照著官方的安裝流程一步步進行不會有太大的問題。
Installing NetBox - NetBox
https://netbox.readthedocs.io/en/stable/installation/
節省工具箱 Jason Tools: [經驗分享]NetBox 安裝記錄與初步使用心得
http://blog.jason.tools/2019/07/netbox-install-test.html